Home » Timp Liber » Cum sa construiesti o harpa electronica – Smart Nation

Cum sa construiesti o harpa electronica – Smart Nation

Cum sa construiesti o harpa electronica – Smart Nation
Publicat: 02.12.2013
Scris de Viorel Spinu
In tutorialul  de saptamana aceasta vreau sa va povestesc despre cum putem construi o harpa electronica folosing placa Arduino.  Pentru inceput va invit sa urmariti urmatorul video:
 
 
O harpa electronica are in loc de corzile din metal niste corzi invizibile din laser, iar atunci cand treci cu mana prin dreptul senzorului de lumina, ciupesti practic raza si generezi melodii, asa cum se intampla la o harpa obisnuita.
 
Daca vreti sa construiti o harpa electronica atunci va pot fi de mare folos codurile sursa pe care le impartasec acum cu voi.
 
Placa Arduino este practic creierul intregii operatiuni. Ea ruleaza codul sursa pe care il gasiti detaliat mai jos si care va ajuta sa emiteti notele muzicale.
 
>>cod sursa harpa
 
#include
 
#include
 
#define SOUND_RELEASE_TIME 1000
 
#define INSTRUMENT_COUNT 16
 
#define VOLUME 127 // an int between 0 and 127
 
byte resetMIDI = 4;
 
byte ledPin = 13;
 
byte stari[16];
 
byte hittedNote[INSTRUMENT_COUNT];
 
uint32_t timestamp[INSTRUMENT_COUNT];
 
long valCapSens[INSTRUMENT_COUNT];
 
#define T 0×78  //TOBE
 
#define M 0×79 //MELODIC
 
byte nota[INSTRUMENT_COUNT] =            {
 
62, 63, 49, 64, 65, 66, 67, 68, 69, 66, 43,  30, 57, 41,  61,  48};
 
int instrumentNumber[INSTRUMENT_COUNT] = {
 
3,  3, -1, 3,  3,  3,  3,  3,  3,  -1, -1,  -1, -1, -1,  -1,  -1};
 
int bank[INSTRUMENT_COUNT] =             {
 
M,  M,  T, M,  M,  M,  M,  M,  M,   T,  T,   T,  T,  T,   T,   T};
 
SoftwareSerial mySerial(2, 3);
 
boolean USE_SINGLE_TRESHOLD = true;
 
int PRAG_PRESETAT = 300;
 
int PRAG_SENZORI[INSTRUMENT_COUNT] = {
 
2000, 3500, 3500, 3500, 3500, 3500, 2000, 1000, 2000, 3500, 3500, 3500, 3500, 2000, 1000, 2000};
 
int SAMPLES = 50;
 
//long AUTOCAL_MILLIS = 0xFFFFFFFF;
 
long AUTOCAL_MILLIS = 200;
 
void loop() {
 
int lumina = analogRead(0);
 
if (lumina
 
noteON(8);
 
}
 
delay(100);
 
}
 
void noteON(int index){
 
talkMIDI(0xB0, 0×07, VOLUME);
 
talkMIDI(0xB0, 0, bank[0]);
 
talkMIDI(0xC0, instrumentNumber[1], 0);
 
noteOn(0, nota[index], 127);
 
 
 
}
 
void setup()  {
 
Serial.begin(115200);
 
midi_setup();
 
talkMIDI(0xB0, 0×07, VOLUME);
 
if (USE_SINGLE_TRESHOLD) {
 
for (int counter = 0; counter
 
PRAG_SENZORI[counter] = PRAG_PRESETAT;
 
}
 
}
 
}
 
void midi_setup() {
 
mySerial.begin(31250);
 
pinMode(resetMIDI, OUTPUT);
 
digitalWrite(resetMIDI, LOW);
 
delay(100);
 
digitalWrite(resetMIDI, HIGH);
 
delay(100);
 
for(int i; i
 
timestamp[i] = 0xFFFFFFFF;
 
}
 
talkMIDI(0xB0, 0, 0×00);
 
}
 
void noteOn(byte channel, byte note, byte attack_velocity) {
 
talkMIDI( (0×90 | channel), note, attack_velocity);
 
}
 
void noteOff(byte channel, byte note, byte release_velocity) {
 
talkMIDI( (0×80 | channel), note, release_velocity);
 
}
 
void talkMIDI(byte cmd, byte data1, byte data2) {
 
digitalWrite(ledPin, HIGH);
 
mySerial.write(cmd);
 
mySerial.write(data1);
 
if( (cmd & 0xF0)
 
mySerial.write(data2);
 
digitalWrite(ledPin, LOW);
 
}
 
void printPaddingZeros(long number) {
 
if (number
 
Serial.print(“     “);
 
}
 
else if (number
 
Serial.print(“    “);
 
}
 
else if (number
 
Serial.print(“   “);
 
}
 
else if (number
 
Serial.print(“  “);
 
}
 
Serial.print(number);
 
}
 
Si apoi daca vreti sa vedeti cum functioneaza senzorul de lumina atunci trebuie sa utilizati codul sursa de mai jos:
 
>>senzor lumina
 
void setup(){
 
Serial.begin(9600);
 
 
 
}
 
void loop(){
 
int lumina = analogRead(0);
 
Serial.println(lumina);
 
}
 
 
 
Smart Nation este platforma unde tehnologia va inspira pe voi toti. Sa va imaginati, sa inovati, sa creati!
 
Intra pe SmartNation.ro daca vrei sa fii informat in legatura cu noile gadget-uri, dar si pentru a putea afla cum functioneaza, ce fac si cum iti pot imbunatati viata de zi cu zi. 
 
 
Urmărește DESCOPERĂ.ro pe
Google News și Google Showcase
Cele mai noi articole
Oamenii de știință au descoperit, în premieră, o moleculă care absoarbe gazele cu efect de seră
Oamenii de știință au descoperit, în premieră, o moleculă care absoarbe gazele cu efect de seră
Vidrele de mare folosesc unelte pentru a avea acces la pradă mai mare și pentru a-și proteja dinții
Vidrele de mare folosesc unelte pentru a avea acces la pradă mai mare și pentru a-și proteja dinții
Un cercel de aur a dezvăluit o poveste devastatoare de acum 2.200 de ani
Un cercel de aur a dezvăluit o poveste devastatoare de acum 2.200 de ani
Peter Buffett, compozitor, filantrop și fiul unuia dintre miliardarii de top ai lumii. „Viața este aleatorie, nici corectă, nici nedreaptă”
Peter Buffett, compozitor, filantrop și fiul unuia dintre miliardarii de top ai lumii. „Viața este aleatorie, nici corectă, ...
John Herschel și contribuțiile aduse astronomiei. „Respectul de sine este piatra de temelie a oricărei virtuți”
John Herschel și contribuțiile aduse astronomiei. „Respectul de sine este piatra de temelie a oricărei virtuți”
Speranța de viață globală ar putea crește cu pâna la 5 ani până în 2050
Speranța de viață globală ar putea crește cu pâna la 5 ani până în 2050
CRISPR ar putea trata orbirea moștenită, arată datele preliminare
CRISPR ar putea trata orbirea moștenită, arată datele preliminare
Ce este și cum apare „pielea de găină”?
Ce este și cum apare „pielea de găină”?
Astronomii au găsit o planetă de mărimea Pământului la doar 55 de ani-lumină depărtare
Astronomii au găsit o planetă de mărimea Pământului la doar 55 de ani-lumină depărtare
Temperaturile anunțate de ANM! Cum va fi vremea până în iunie?
Temperaturile anunțate de ANM! Cum va fi vremea până în iunie?
Nume mari de la Hollywood s-au aliat pentru întoarcerea lui Kevin Spacey pe marile ecrane
Nume mari de la Hollywood s-au aliat pentru întoarcerea lui Kevin Spacey pe marile ecrane
O companie din China a lansat o mașină mai ieftină decât modelul Y de la Tesla
O companie din China a lansat o mașină mai ieftină decât modelul Y de la Tesla
În urmă cu 114 ani, Pământul trecea la o distanţă foarte mică pe lângă cometa lui Halley
În urmă cu 114 ani, Pământul trecea la o distanţă foarte mică pe lângă cometa lui Halley
O nouă eră de parteneriat între China și Rusia. Anunțul făcut de Xi Jinping și Vladimir Putin
O nouă eră de parteneriat între China și Rusia. Anunțul făcut de Xi Jinping și Vladimir Putin
Primul caz de gripă aviară la om transmisă de la vaci
Primul caz de gripă aviară la om transmisă de la vaci
Misterul piramidelor din Egipt, aproape de a fi rezolvat. Cum cred cercetătorii că au fost construite?
Misterul piramidelor din Egipt, aproape de a fi rezolvat. Cum cred cercetătorii că au fost construite?
Bărbat dispărut în urmă cu 27 de ani, găsit în pivnița unui vecin
Bărbat dispărut în urmă cu 27 de ani, găsit în pivnița unui vecin
Cristian Șofron, unul dintre copiii-fenomen ai cinematografiei din România, invitat la Altceva cu Adrian Artene
Cristian Șofron, unul dintre copiii-fenomen ai cinematografiei din România, invitat la Altceva cu Adrian Artene